﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace QFlow.Core
{
    public enum Alignment
    {
        Center,
        Left,
        Rigth
    }
    /// <summary>
    /// Iprinter interface
    /// </summary>
    public interface IPrinter
    {
        /// <summary>
        /// Opens the cash drawer.
        /// </summary>
        void OpenCashDrawer();

        /// <summary>
        /// Changes the font.
        /// </summary>
        /// <param name="fontName">Name of the font.</param>
        /// <param name="fontSize">Size of the font.</param>
        /// <param name="bold">if set to <c>true</c> [bold].</param>
        void ChangeFont(string fontName, float fontSize, bool bold);

        /// <summary>
        /// Changes the alignment.
        /// </summary>
        /// <param name="alignment">The alignment.</param>
        void ChangeAlignment(Alignment alignment);

        /// <summary>
        /// Prints the string.
        /// </summary>
        /// <param name="value">The value.</param>
        void PrintString(string value);

        /// <summary>
        /// Prints the image.
        /// </summary>
        /// <param name="bmpPath">The BMP path.</param>
        void PrintImage(string bmpPath);

        /// <summary>
        /// Cuts the receipt.
        /// </summary>
        void CutReceipt();

        /// <summary>
        /// Flushes this instance.
        /// </summary>
        void Flush();
    }
}
